home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MATH / MATH1 / NEWTON.LIB < prev    next >
Text File  |  1985-04-03  |  512b  |  32 lines

  1.  
  2.  
  3.  
  4. { -> 249 }
  5. procedure newton(var x: real);
  6. const    tol        = 1.0E-6;
  7. var    fx,dfx,dx,x1    : real;
  8.  
  9. begin    { newton }
  10.   error:=false;
  11.   repeat
  12.     x1:=x;
  13.     func(x,fx,dfx);
  14.     if dfx=0.0 then
  15.       begin
  16.     error:=true;
  17.     x:=1.0;
  18.     writeln(chr(7),'ERROR: slope zero')
  19.       end
  20.     else
  21.       begin
  22.     dx:=fx/dfx;
  23.     x:=x1-dx;
  24.     writeln('x=',x,'  fx=',fx,'  dfx=',dfx)
  25.       end
  26.   until
  27.     error or
  28.       (abs(dx)<=abs(tol*x))
  29. end;        { newton }
  30.  
  31.  
  32.